#pragma once

#include <directxmath.h>
using namespace DirectX;

namespace ShaderStructures
{
	struct SimpleVertex
	{
		XMFLOAT3 Pos;
		XMFLOAT3 Normal;
		XMFLOAT2 Tex;
	};


	struct CONSTANT_BUFFER_STRUCT
	{
		XMMATRIX mWorld;
		XMMATRIX mView;
		XMMATRIX mProjection;
		XMMATRIX mViewProjection;
		XMMATRIX mWorldViewProjection;
		XMFLOAT4 vScreenResolution;
		XMFLOAT4 vMeshColor;                     // Mesh color
		XMFLOAT4 vTessellationFactor;            // Edge, inside, minimum tessellation factor and 1/desired triangle size
		XMFLOAT4 vDetailTessellationHeightScale; // Height scale for detail tessellation of grid surface
		XMFLOAT4 vGridSize;                      // Grid size
		XMFLOAT4 vDebugColorMultiply;            // Debug colors
		XMFLOAT4 vDebugColorAdd;                 // Debug colors
		XMFLOAT4 vFrustumPlaneEquation[4];       // View frustum plane equations

		XMFLOAT4 vLightDir[2];
		XMFLOAT4 vLightColor[2];
		XMFLOAT4 vOutputColor;
	};

	struct MATERIAL_CB_STRUCT
	{
		XMFLOAT4 g_materialAmbientColor;  // Material's ambient color
		XMFLOAT4 g_materialDiffuseColor;  // Material's diffuse color
		XMFLOAT4 g_materialSpecularColor; // Material's specular color
		XMFLOAT4 g_fSpecularExponent;     // Material's specular exponent

		XMFLOAT4 g_LightPosition;         // Light's position in world space
		XMFLOAT4 g_LightDiffuse;          // Light's diffuse color
		XMFLOAT4 g_LightAmbient;          // Light's ambient color

		XMFLOAT4 g_vEye;                  // Camera's location
		XMFLOAT4 g_fBaseTextureRepeat;    // The tiling factor for base and normal map textures
		XMFLOAT4 g_fPOMHeightMapScale;    // Describes the useful range of values for the height field

		XMFLOAT4 g_fShadowSoftening;      // Blurring factor for the soft shadows computation

		int             g_nMinSamples;           // The minimum number of samples for sampling the height field
		int             g_nMaxSamples;           // The maximum number of samples for sampling the height field
		int             uDummy1;
		int             uDummy2;
	};




}